/*************************************************************************
	> File Name: 1.select.c
	> Author: WangYiFei
	> Mail: 824537320@qq.com
	> Created Time: Sat 09 Jan 2021 05:13:00 PM CST
 ************************************************************************/

#include <stdio.h>
#include <stdlib.h>
#include <sys/time.h>
#include <sys/types.h>
#include <unistd.h>

int
main(void)
{
    fd_set rfds;
    struct timeval tv;
    int retval;
 
    /* Watch stdin (fd 0) to see when it has input. */
 
    FD_ZERO(&rfds);
    FD_SET(0, &rfds);
 
    /* Wait up to five seconds. */
 
    tv.tv_sec = 5;
    tv.tv_usec = 0;
 
    retval = select(1, &rfds, NULL, NULL, &tv);
    /* Don't rely on the value of tv now! */
 
    if (retval == -1)
        perror("select()");
    else if (retval) {
        char buff[512];
        printf("Data is available now.\n");
        /* FD_ISSET(0, &rfds) will be true. */
        scanf("%s", buff);
        printf("you input is : %s\n", buff);
    }
    else
        printf("No data within five seconds.\n");
 
    exit(EXIT_SUCCESS);
}
